validation 包常用注解以及用法
@NotNull
描述: 字段不能为
null。示例:
@NotNull(message = "Name cannot be null") private String name;
@NotEmpty
描述: 字符串不能为空且长度必须大于0(不包括仅由空格组成的字符串)。
示例:
@NotEmpty(message = "Address cannot be empty") private String address;
@NotBlank
描述: 字符串不能为空且至少包含一个非空白字符。
示例:
@NotBlank(message = "Phone number cannot be blank") private String phoneNumber;
@Size
描述: 指定字段的最小和最大长度。
参数:
min: 最小长度(默认为 0)。max: 最大长度(默认为Integer.MAX_VALUE)。
示例:
@Size(min = 5, max = 20, message = "Username must be between 5 and 20 characters") private String username;
@Min
描述: 数字值必须大于或等于指定的最小值。
参数:
value: 最小值。
示例
@Min(value = 18, message = "Age must be at least 18") private int age;
@Max
描述: 数字值必须小于或等于指定的最大值。
参数:
value: 最大值。
示例:
@Max(value = 100, message = "Age must not exceed 100") private int age;
@DecimalMin
描述: 浮点数或整数必须大于或等于指定的最小值。
参数:
value: 最小值。inclusive: 是否包含边界值(默认为true)。
示例:
@DecimalMin(value = "10.0", inclusive = false, message = "Price must be greater than 10.0") private double price;
@DecimalMax
描述: 浮点数或整数必须小于或等于指定的最大值。
参数:
value: 最大值。inclusive: 是否包含边界值(默认为true)。
示例:
@DecimalMax(value = "1000.0", inclusive = true, message = "Price must not exceed 1000.0") private double price;
@Digits
描述: 数字必须是具有指定整数位数和小数位数的数值。
参数:
integer: 整数位数。fraction: 小数位数。
示例:
@Digits(integer = 3, fraction = 2, message = "Salary must have up to 3 digits before the decimal point and 2 after") private BigDecimal salary;
@Positive
描述: 数字必须为正数(大于0)。
示例:
@Positive(message = "Quantity must be positive") private int quantity;
@PositiveOrZero
描述: 数字必须为正数或零。
示例:
@PositiveOrZero(message = "Discount must be zero or positive") private int discount;
@Negative
描述: 数字必须为负数(小于0)。
示例:
@Negative(message = "Debt must be negative") private int debt;
@NegativeOrZero
描述: 数字必须为负数或零。
示例:
@NegativeOrZero(message = "Balance must be zero or negative") private int balance;
@Past
描述: 日期必须在过去。
示例:
@Past(message = "Birth date must be in the past") private LocalDate birthDate;
@PastOrPresent
描述: 日期必须在过去或现在。
示例:
@PastOrPresent(message = "Joining date must be in the past or present") private LocalDate joiningDate;
@Future
描述: 日期必须在未来。
示例:
@Future(message = "Event date must be in the future") private LocalDate eventDate;
@FutureOrPresent
描述: 日期必须在未来或现在。
示例:
@FutureOrPresent(message = "Due date must be in the future or present") private LocalDate dueDate;
@Pattern
描述: 字符串必须匹配指定的正则表达式。
参数:
regexp: 正则表达式。flags: 正则表达式的标志(如Pattern.CASE_INSENSITIVE)。
示例:
@Pattern(regexp = "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,6}$", message = "Invalid email format") private String email;
@AssertTrue
描述: 表达式的结果必须为
true。示例:
@AssertTrue(message = "Agree to terms must be checked") private boolean agreeToTerms;
@AssertFalse
描述: 表达式的结果必须为
false。示例:
@AssertFalse(message = "Spam must not be checked") private boolean spam;
@Valid
描述: 对嵌套的对象递归地进行校验。
示例:
@Valid private Address address;